spark的日志监控(WEB UI 和history server) | 您所在的位置:网站首页 › spark web ui详解 › spark的日志监控(WEB UI 和history server) |
背景
当我们在跑一个spark任务的时候,如果碰到数据倾斜或者我们想去看下运行参数或者具体的运行情况,这时候我们就需要一个可视化的日志页面,去监控spark的运行。 (注明:大部分知识点是从官方文档翻译,少部分是自己测试,或者在实际项目中的总结。) 官方文档地址:https://spark.apache.org/docs/latest/monitoring.html 1、spark UI默认情况下,SparkContext都会默认在端口4040上启动一个Web UI,即启动一个application会在端口4040启动一个web UI。如果多个application在同一个主机上运行,则会从4040开始往后顺延,即4041,4042 等(这个在启动日志可以看到),如下所示 20/03/25 11:16:16 WARN util.Utils: Service ‘SparkUI’ could not bind on port 4040. Attempting port 4041. 20/03/25 11:16:16 INFO server.AbstractConnector: Started ServerConnector@61533ae{HTTP/1.1,[http/1.1]}{0.0.0.0:4041} 20/03/25 11:16:16 INFO util.Utils: Successfully started service ‘SparkUI’ on port 4041. 但是默认情况WEB ui只在程序访问期间有效。在一个application结束的时候,就会去关闭此端口,所以页面也就访问不了了。 20/03/25 11:17:17 INFO server.AbstractConnector: Stopped Spark@61533ae{HTTP/1.1,[http/1.1]}{0.0.0.0:4041} 20/03/25 11:17:17 INFO ui.SparkUI: Stopped Spark web UI at http://****:4041 2、history serverspark提供了history server,使其可以在application 完成以后来查看相应的页面。 原理是将spark application执行过程中的信息以及结果保存成一个文件存到相应的路径,然后server端会去指定的位置扫描加载。如下所示 -rwxrwxrwx 3 hadoop hadoop 22165 2019-07-29 07:14 hdfs://beh/var/log/hadoop-spark/application_1544095686986_0001 -rwxrwx— 2 hadoop hadoop 87292 2020-03-25 19:41 hdfs://beh/var/log/hadoop-spark/application_1584768368082_0023 每一个文件使用json保存的一些信息,等待server端的扫描加载 1、配置1、客户端的配置 在spark-defaults.conf下 spark.eventLog.dir hdfs:///sparkHistory spark.eventLog.enabled true 2、server端的配置 在spark-env.sh 下 export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.fs.logDirectory=hdfs:///sparkHistory" 2、启动进入spark根目录的sbin下 ./start-history-server.sh 3、参数说明history server有一些相关的配置,具体的如官网所示 https://spark.apache.org/docs/latest/monitoring.html 4、参数说明、在yarn的UI 界面跳转在yarn界面链接到spark历史服务器 抱歉之前的写法只是能在访问 ip:18080 这样可以访问,但是如果在yarn UI的界面链接过去是不能的 如这个界面 看下日志,看下端口,是否启动成功 启动成功 则开启了history-server |
CopyRight 2018-2019 实验室设备网 版权所有 |